package com.fdb.efp.limit.common.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 列属性信息
 *
 *      支持Java对象数据类型：Boolean、String、Short、Integer、Long、Float、Double、Date
 *      支持Excel的Cell类型为：String
 *
 * @author xuxueli 2017-09-08 20:22:41
 */
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface ExcelField {

    /**
     * 列名称
     *
     * @return
     */
    String name() default "";

    /**
     * 列宽 (大于0时生效; 如果不指定列宽，将会自适应调整宽度；)
     *
     * @return
     */
    int width() default 0;

    /**
     * 时间格式化，日期类型时生效
     *
     * @return
     */
    String dateformat() default "yyyy-MM-dd HH:mm:ss";
    
    /**
     * 
     * @Description 字段是否可以为空
     * @return
     */
    boolean isNull() default true;
    
    /**
     * 
     * @Description 是否要验证手机号码
     * @return
     */
    boolean isVerifyPhone() default false;
    
    /**
     * 
     * @Description 是否要验证是不是小数
     * @return
     */
    boolean isVerifyDecimalNum() default false;
    
    /**
     * 
     * @Description 是否要验证是不是整数
     * @return
     */
    boolean isVerifyIntNum() default false;
    
    /**
     * 
     * @Description 是否要验证是不是身份证号码
     * @return
     */
    boolean isVerifyCert() default false;
    
    /**
     * 
     * @Description 字典类型
     * @return
     */
    String dicType() default "";
    
    /**
     * 
     * @Description 字段的长度验证
     * @return
     */
    int length() default -1;
    
    /**
     * 
     * @Description 是否验证法人机构号码
     * @return
     */
    boolean isVerifyOrgCode() default false;
}
